home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / LIBRARY / TOOLPAS2 / MKTRAX.PAS < prev    next >
Pascal/Delphi Source File  |  1990-01-29  |  2KB  |  77 lines

  1.  
  2. (*
  3.  * adirs - find all directories in a subdirectory tree
  4.  *
  5.  * Author: S.H.Smith, 5-Apr-86 (16-sep-87)
  6.  *
  7.  *)
  8.  
  9. uses DOS;
  10.  
  11. procedure listdirs(dir: dirstr);
  12. var
  13.    DirInfo:       SearchRec;
  14. begin
  15.    writeln(dir);
  16.  
  17.    FindFirst(dir+'\*.*',Anyfile,DirInfo);
  18.    while (DosError = 0) do
  19.    begin
  20.       if ((DirInfo.Attr and Directory) <> 0) and (DirInfo.name[1] <> '.') then
  21.          listdirs(dir+'\'+DirInfo.Name);
  22.       FindNext(DirInfo);
  23.    end;
  24. end;
  25.  
  26. procedure listfiles(dir: dirstr; pattern: nameStr);
  27. var
  28.    DirInfo:       SearchRec;
  29. begin
  30.    FindFirst(dir+'\'+pattern,Anyfile,DirInfo);
  31.    while (DosError = 0) do
  32.    begin
  33.       if (DirInfo.Attr and Directory) = 0 then
  34.          writeln(dir+'\'+DirInfo.Name);
  35.       FindNext(DirInfo);
  36.    end;
  37.  
  38.    FindFirst(dir+'\*.*',Anyfile,DirInfo);
  39.    while (DosError = 0) do
  40.    begin
  41.       if ((DirInfo.Attr and Directory) <> 0) and (DirInfo.name[1] <> '.') then
  42.          listfiles(dir+'\'+DirInfo.Name,pattern);
  43.       FindNext(DirInfo);
  44.    end;
  45. end;
  46.  
  47. var
  48.    con:  text;
  49.    buf:  array[1..$8000] of byte;
  50.  
  51. procedure findfiles(pattern: nameStr);
  52. begin
  53.    writeln(con,'Finding files like ',pattern,' ...');
  54.    listfiles('',pattern);
  55. end;
  56.  
  57. begin
  58.    assign(con,'con');
  59.    rewrite(con);
  60.    setTextBuf(output,buf);
  61.  
  62.    writeln(con,'Finding directories ...');
  63.    listdirs('');
  64.    writeln('free');
  65.  
  66.    findfiles('*.PAS');
  67.    findfiles('*.IN?');
  68.    findfiles('*.DCL');
  69.    findfiles('*.BAT');
  70.    findfiles('*.COM');
  71.    findfiles('*.EXE');
  72.  
  73.    close(con);
  74.    close(output);
  75. end.
  76.  
  77.